/*
 * Summary: minimal HTTP implementation
 * Description: minimal HTTP implementation allowing to fetch resources
 *              like external subset.
 *
 * Copy: See Copyright for the status of this software.
 *
 * Author: Daniel Veillard
 */
 
#ifndef __NANO_HTTP_H__
#define __NANO_HTTP_H__

#include <libxml/xmlversion.h>

#ifdef LIBXML_HTTP_ENABLED

#ifdef __cplusplus
extern "C" {
#endif
XMLPUBFUN void XMLCALL
    xmlNanoHTTPInit        (void);
XMLPUBFUN void XMLCALL    
    xmlNanoHTTPCleanup    (void);
XMLPUBFUN void XMLCALL    
    xmlNanoHTTPScanProxy    (const char *URL);
XMLPUBFUN int XMLCALL    
    xmlNanoHTTPFetch    (const char *URL,
                 const char *filename,
                 char **contentType);
XMLPUBFUN void * XMLCALL    
    xmlNanoHTTPMethod    (const char *URL,
                 const char *method,
                 const char *input,
                 char **contentType,
                 const char *headers,
                 int   ilen);
XMLPUBFUN void * XMLCALL    
    xmlNanoHTTPMethodRedir    (const char *URL,
                 const char *method,
                 const char *input,
                 char **contentType,
                 char **redir,
                 const char *headers,
                 int   ilen);
XMLPUBFUN void * XMLCALL    
    xmlNanoHTTPOpen        (const char *URL,
                 char **contentType);
XMLPUBFUN void * XMLCALL    
    xmlNanoHTTPOpenRedir    (const char *URL,
                 char **contentType,
                 char **redir);
XMLPUBFUN int XMLCALL    
    xmlNanoHTTPReturnCode    (void *ctx);
XMLPUBFUN const char * XMLCALL 
    xmlNanoHTTPAuthHeader    (void *ctx);
XMLPUBFUN const char * XMLCALL
    xmlNanoHTTPRedir    (void *ctx);
XMLPUBFUN int XMLCALL
    xmlNanoHTTPContentLength( void * ctx );
XMLPUBFUN const char * XMLCALL
    xmlNanoHTTPEncoding    (void *ctx);
XMLPUBFUN const char * XMLCALL
    xmlNanoHTTPMimeType    (void *ctx);
XMLPUBFUN int XMLCALL    
    xmlNanoHTTPRead        (void *ctx,
                 void *dest,
                 int len);
#ifdef LIBXML_OUTPUT_ENABLED
XMLPUBFUN int XMLCALL    
    xmlNanoHTTPSave        (void *ctxt,
                 const char *filename);
#endif /* LIBXML_OUTPUT_ENABLED */
XMLPUBFUN void XMLCALL    
    xmlNanoHTTPClose    (void *ctx);
#ifdef __cplusplus
}
#endif

#endif /* LIBXML_HTTP_ENABLED */
#endif /* __NANO_HTTP_H__ */
